package com.imc.platform.base.org.dao;

import com.imc.platform.base.org.pojo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.aspectj.weaver.ast.Or;

import java.util.List;
import java.util.Map;

/*
*类描述：组织机构
*开发者：ZL
*创建时间：2018-8-3 14:46:13
*/
@Mapper
public interface IOrgMapper {
        /*
        *ZL 2018-8-3 14:47:19
        *方法描述：查询组织机构ID,名称
        */
        List<Org> queryOrg();
        /*
       *ZL 2018-8-3 14:47:19
       *方法描述：删除当前机构
       */
        int delOrgbyId(@Param("orgId") String orgId);
          /*
         *ZL 2018-8-23 10:27:27
         *方法描述：通过父ID删除对应组织机构
         */
        int delOrgbyPid(@Param("parentId") String parentId);
       /*
       *ZL 2018-8-23 09:45:43
       *方法描述：编辑机构名称
       */
        int updateOrgName(Org org);
        /*
        *ZL 2018-8-23 14:34:23
        *方法描述：批量删除组织机构子节点
        */
        int clearChildren (Map map);
        /*
        *ZL 2018-8-23 14:34:23
        *方法描述：判断当前节点是否有子节点
        */
        int queryParent(Map map);
        /*
        *ZL 2018-8-24 10:13:46
        *方法描述：查询当前排序
        */
        Org queryOrgSn();
        /*
       *ZL 2018-8-24 10:13:46
       *方法描述：查询当前ID
       */
        String queryOrgId(@Param("parentId") String parentId);
      /*
       *ZL 2018-8-24 10:13:46
       *方法描述：添加机构
       */
         void addOrg(Org org);

         /**
          * 方法描述: 组织机构附件表
          * SJC 2018-9-10 21:15:38
          *
         */
        int addOrgAttach(OrgAttach oa);

        void delOrgAttrch(@Param("id") String id,@Param("imgUrl") String imgUrl);
    /**
     * 方法描述: 修改机构简介
     * SJC 2018-9-10 20:17:39
     *
     */
    int updateOrgDesc(@Param("orgId")String orgId,@Param("orgDesc")String orgDesc);


    /**
     * 方法描述: 修改招聘简介
     * SJC 2018-9-10 20:17:39
     *
     */
    int updateRecruit(@Param("id") String id,@Param("recruitInfo") String recruitInfo);


    void updateOrgDet(@Param("orgId") String orgId,@Param("orgDesc") String orgDesc);
    /**
     * 方法描述: 修改教研团队
     * SJC 2018-9-10 20:17:39
     *
     */
    int updateTeam(@Param("id") String id,@Param("teamInfo") String teamInfo);


    /**
     * 方法描述:新增招聘信息
     * SJC 2018-9-28 17:37:23
     *
     */
    int addOrgRecruit(@Param("orgId")String orgId,@Param("recruitInfo")String desc);

    /**
     * 方法描述:新增教研团队
     * SJC 2018-9-28 17:38:06
     *
     */
    int addOrgTeam(@Param("orgId")String orgId,@Param("teamInfo")String desc);


    /**
         * 方法描述:新增校区描述
         * SJC 2018-9-10 21:24:08
         *
        */
        int updateOrgDetail(@Param("orgId")String orgId,@Param("orgName")String orgName,@Param("address") String address,@Param("coordinate") String coordinate);

        /**
         * 方法描述:获取组织详情
         * SJC 2018-9-12 19:40:29
         *
         */
        List<Map<String,Object>> queryOrgInfos(@Param("id") String id);

    /**
     * 方法描述:获取组织详情
     * SJC 2018-9-12 19:40:29
     *
     */
    Org queryOrgContent(@Param("id") String id,@Param("contentType") String contentType);

    /**
     * 方法描述:获取学校简介列表（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
    */
    List<Map<String,Object>> querySchoolSummaryToApi();

    /**
     * 方法描述:获取招生简介列表（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
     */
    List<Map<String,Object>> queryEnrolStudentsToApi();


    /**
     * 方法描述:获取教研团队列表（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
     */
    List<Map<String,Object>> queryTeacherTeamToApi();


    /**
     * 方法描述:获取学校简介详情（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
     */
    List<Map<String,Object>> querySchoolSummaryInfoToApi(@Param("id")String id);

    /**
     * 方法描述:获取招生简介详情（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
     */
    List<Map<String,Object>> queryEnrolStudentInfoToApi(@Param("id")String id);


    /**
     * 方法描述:获取教研团队详情（提供给接口）
     * SJC 2018-9-29 17:30:33
     *
     */
    List<Map<String,Object>> queryTeacherTeamInfoToApi(@Param("id")String id);


    /**
     * 方法描述:根据组织id获取附件列表
     * SJC 2018-9-12 19:44:59
     *
     */
    List<OrgAttach> queryOrgAttach(@Param("orgId") String orgId);


    /**
     * 方法描述:新增招聘信息
     * SJC 2018-9-25 20:35:45
     *
     */
    int  addRecruit(OrgRecruit orgRecruit);

    /**
     * 方法描述:新增教研团队
     * SJC 2018-9-25 20:35:45
     *
     */
    int  addTeam(OrgTeam orgTeam);

    String queryOrgIdByUserId(String userId);

    String queryOrgNameByOrgId(String orgId);

    Org queryOrgByOrgId(String orgId);

    List<OrgTeam> queryOrgTeamById(String orgId);

    void updateOrgBasic(Org org);

    String queryUpMaxSn(String id);

    String queryUpSn(String id);

    List<OrgLive>queryLiveList(String orgId);

    int updateOrgLiveState(@Param("parms") Map<String,Object>parms);

    List<OrgLive>queryLiveAllList();

    OrgLive queryLiveByLiveId(String liveId);

    void addLive(OrgLive orgLive);

    int updateOrgLive(OrgLive orgLive);

    int delLiveByLiveId(String liveId);

    void delLiveAtt(@Param("liveId") String liveId,@Param("imgUrl") String imgUrl);

    int delLiveAllAtt(String liveId);
}
